home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / asm / pc370_3.exe / lha / DEMO8Q.ALC < prev    next >
Text File  |  1985-04-28  |  3KB  |  117 lines

  1.          TITLE 'DEMO8Q.ALC - 8 DEMO8QS PROBLEM'
  2. * CONVERTED TO 8086 BY DON HIGGINS 03/30/85
  3. *
  4. * COPYRIGHT 1983 MACRO MICRO SYSTEMS, INC.
  5. * AUTHOR.  DON HIGGINS.
  6. * DATE.    10/23/82.
  7. * REMARKS. SOLVE 8 DEMO8QS PROBLEM WITH RECURSIVE ROUTINE.
  8. *
  9. * PROGRAM RAN 85 SECONDS WITH JRT PASCAL ON 4MHZ Z80
  10. * PROGRAM RAN 55 SECONDS WITH A370 ON SAME SYSTEM
  11. *
  12. DEMO8Q   CSECT
  13.          LR    BASE,ENTRY
  14.          USING DEMO8Q,BASE
  15.          L     ENTRY,=V(PET)
  16.          BALR  LINK,ENTRY
  17.          LA    STKPTR,STACK-LSENTRY
  18.          USING DSTACK,STKPTR
  19.          LA    N,1
  20.          BAL   LINK,GENQ
  21.          L     ENTRY,=V(PET)
  22.          BALR  LINK,ENTRY
  23.          SVC   EXIT
  24. GENQ     EQU   *
  25.          LA    STKPTR,LSENTRY(STKPTR)
  26.          ST    H,STKH
  27.          ST    LINK,STKLINK
  28.          LA    H,1
  29. LOOP     EQU   *
  30.          LA    ACOL,COL-1(H)
  31.          CLI   0(ACOL),TRUE
  32.          BNE   NEXT
  33.          LA    R1,8(N)
  34.          SR    R1,H
  35.          LA    AUP,UP-1(R1)
  36.          CLI   0(AUP),TRUE
  37.          BNE   NEXT
  38.          LA    R1,0(N,H)
  39.          BCTR  R1,0
  40.          LA    ADOWN,DOWN-1(R1)
  41.          CLI   0(ADOWN),TRUE
  42.          BNE   NEXT
  43.          STC   H,X-1(N)
  44.          MVI   0(ACOL),FALSE
  45.          MVI   0(AUP),FALSE
  46.          MVI   0(ADOWN),FALSE
  47.          LA    N,1(N)
  48.          CH    N,=H'8'
  49.          BH    PRINT
  50.          BAL   LINK,GENQ
  51.          B     CONT
  52. PRINT    EQU   *
  53.          LA    K,8
  54.          LA    ALINE,LINE+1
  55. PLOOP    EQU   *
  56.          SR    R0,R0
  57.          IC    R0,X-1(K)
  58.          CVD   R0,PWORK
  59.          MVC   0(4,ALINE),=X'40202020'
  60.          ED    0(4,ALINE),PWORK+6
  61.          LA    ALINE,5(ALINE)
  62.          BCT   K,PLOOP
  63.          LA    R2,LINE
  64.          SVC   WTO
  65. CONT     EQU   *
  66.          BCTR  N,0
  67.          LA    R1,0(H,N)
  68.          BCTR  R1,0
  69.          LA    ADOWN,DOWN-1(R1)
  70.          MVI   0(ADOWN),TRUE
  71.          LA    R1,8(N)
  72.          SR    R1,H
  73.          LA    AUP,UP-1(R1)
  74.          MVI   0(AUP),TRUE
  75.          LA    ACOL,COL-1(H)
  76.          MVI   0(ACOL),TRUE
  77. NEXT     EQU   *
  78.          LA    H,1(H)
  79.          CH    H,=H'8'
  80.          BNH   LOOP
  81.          L     H,STKH
  82.          L     LINK,STKLINK
  83.          SH    STKPTR,=AL2(LSENTRY)
  84.          BR    LINK
  85.          LTORG
  86. EXIT     EQU   0
  87. WTO      EQU   209
  88. R0       EQU   0
  89. R1       EQU   1
  90. R2       EQU   2
  91. N        EQU   3
  92. ACOL     EQU   4
  93. AUP      EQU   5
  94. ADOWN    EQU   6
  95. AX       EQU   7
  96. H        EQU   8
  97. ALINE    EQU   9
  98. K        EQU   10
  99. BASE     EQU   12
  100. STKPTR   EQU   13
  101. LINK     EQU   14
  102. ENTRY    EQU   15
  103. COL      DC    8AL1(TRUE)
  104. UP       DC    15AL1(TRUE)
  105. DOWN     DC    15AL1(TRUE)
  106. X        DC    8AL1(0)
  107. STACK    DC    8F'0,0'
  108. LINE     DC    CL50' ',C'$'
  109. PWORK    DC    D'0'
  110. TRUE     EQU   0
  111. FALSE    EQU   1
  112. DSTACK   DSECT
  113. STKH     DS    F
  114. STKLINK  DS    F
  115. LSENTRY  EQU   *-DSTACK
  116.          END   DEMO8Q
  117.